class NameSpace:

    def __init__(self,**kwargs):
        self.__dict__.update(kwargs)

    def __repr__(self):

        items=['%s=%s' %(a,b) for (a,b) in self.__dict__.iteritems() if not a.startswith('__')]

        return 'NameSpace : %s' % items

class Event(NameSpace):

    def __init__(self,subject,**kwargs):
        kwargs.update({'subject':subject})

        NameSpace.__init__(self,**kwargs)
